Workload dispatch device and workload dispatch method thereof

ABSTRACT

A workload dispatch device and a workload dispatch method thereof are provided. The workload dispatch device comprises a monitor, a processor and a dispatcher. The monitor is configured to monitor operating conditions of a plurality of servers. The processor is electrically connected to the monitor and configured to execute the following operations: creating an average performance index table for a plurality of algorithms according to the operating conditions of the servers; normalizing the average performance index table; calculating a benchmark for each of the algorithms according to the normalized performance index table and a corresponding weighting table; and choosing a candidate algorithm from the algorithms according to the benchmarks. The dispatcher is electrically connected to the processor and configured to dispatch a workload to the plurality of servers according to the candidate algorithm.

PRIORITY

This application claims priority to Taiwan Patent Application No.101145819, filed on Dec. 6, 2012, which is hereby incorporated byreference herein in its entirety.

FIELD

The present invention relates to a workload dispatch device and aworkload dispatch method thereof. More particularly, the presentinvention relates to a workload dispatch device and a workload dispatchmethod thereof that dispatch a workload to a plurality of serversthrough an algorithm choosing mechanism.

BACKGROUND

To meet the demands for a high speed, high stability and diversificationof the modern networks, the server cluster technology has been put intowide use. By use of a server cluster consisting of a plurality ofservers, adaptability of the servers can be effectively improved andadvantages such as extended performances can be achieved. However, withadvancement of the server cluster technology, how to effectivelydispatch a workload to the servers in a server cluster also becomes moreimportant and complex.

For a conventional server cluster, there is mostly only one algorithmarranged as a criterion of dispatching the workload to the servers inthe server cluster, for example, the Random algorithm, the Round-Robinalgorithm, the Least-Connection algorithm, the Weighted algorithm and soon. Furthermore, when the workload is dispatched to the servers in theserver cluster, usually an appropriate algorithm is determined accordingto different workload dispatching goals (e.g., load balance, efficiencyimprovement, quality of service (QoS) improvement and so on).

However, the servers in the server cluster are often affected bydifferent unexpected variables, adopting only one algorithm as acriterion of dispatching the workload is inadequate to deal withproblems caused by these variables. Here, take a case where the servercluster is applied to dispatch of an electric load as an example. Ifonly one algorithm is used as a criterion of load dispatching, when thenumber of the variables which affect the servers, such as theelectricity pricing, the current magnitude, the delay time or the taskamount, alter or increase, it may impossible for the server cluster touse the originally chosen algorithm to effectively dispatch the load.Then, the servers in the server cluster will suffer from problems suchas imbalance in workload and decrease in workload dispatchingefficiency.

On the other hand, when the workload dispatch goal changes, theoriginally chosen algorithm mostly fails to satisfy the new workloaddispatch goal. Also take the case where the server cluster is applied todispatch of an electric load as an example. If the workload dispatchgoal changes from the load balance into energy saving, then the originalalgorithm that has been chosen to achieve the load balance will fail toachieve the goal of energy saving. In other words, adopting a specificalgorithm for a specific workload dispatch goal is a technical meancommonly used in the conventional server clusters for workloaddispatching.

Accordingly, the conventional workload dispatch scheme cannot changeadaptively depending on different conditions. In view of this, an urgentneed exists in the art to provide a solution capable of adaptivelydispatching a workload to a plurality of servers in a server cluster.

SUMMARY

The primary objective of the present invention is to provide a solutioncapable of adaptively dispatching a workload to a plurality of serversin a server cluster. Accordingly, the present invention in certainembodiments provides a workload dispatch device and a workload dispatchmethod. Further speaking, operating conditions of the servers in theserver cluster are monitored to obtain the operating conditions of theservers, and then an average performance index table for a plurality ofalgorithms is created according to the operating conditions of theservers. Then, the average performance index table is normalized, and aweighting table corresponding to the average performance index table iscreated. Finally, the normalized performance index table and theweighting table are used as an algorithm choosing mechanism to choosefrom the plurality of algorithms a candidate algorithm that is currentlythe most appropriate for dispatching the workload.

By monitoring the operating conditions of the servers, the presentinvention in certain embodiments can choose different algorithmsaccording to real-time changes in the operating conditions of theservers and change the way of dispatching the workload to the serverscorrespondingly. Thereby, influences of unexpected variables on theservers can be effectively improved. Moreover, certain embodiments ofthe present invention can adaptively adjust the algorithm choosingmechanism through use of a weighting table, so the most appropriatealgorithm can be adaptively chosen for workload dispatching when theworkload dispatching goal changes. In a word, the present invention canadaptively dispatch the workload to the plurality of servers in theserver cluster.

To achieve the aforesaid objective, the present invention according tocertain embodiments provides a workload dispatch device, which comprisesa monitor, a processor and a dispatcher. The monitor is configured tomonitor operating conditions of a plurality of servers. The processor,which is electrically connected to the monitor, is configured to executethe following operations: creating an average performance index tablefor a plurality of algorithms according to the operating conditions ofthe servers; normalizing the average performance index table;calculating a benchmark for each of the algorithms according to thenormalized performance index table and a corresponding weighting table;and choosing a candidate algorithm from the algorithms according to thebenchmarks. The dispatcher, which is electrically connected to theprocessor, is configured to dispatch a workload to the servers accordingto the candidate algorithm.

To achieve the aforesaid objective, the present invention according tocertain embodiments further provides a workload dispatch method, whichcomprises the following steps of:

-   -   (a) enabling a monitor to monitor operating conditions of a        plurality of servers;    -   (b) enabling a processor to create an average performance index        table for a plurality of algorithms according to the operating        conditions of the servers, wherein the processor is electrically        connected to the monitor;    -   (c) enabling the processor to normalize the average performance        index table;    -   (d) enabling the processor to calculate a benchmark for each of        the algorithms according to the normalized performance index        table and a corresponding weighting table;    -   (e) enabling the processor to choose a candidate algorithm from        the algorithms according to the benchmarks; and    -   (f) enabling a dispatcher to dispatch a workload to the servers        according to the candidate algorithm, wherein the dispatcher is        electrically connected to the processor.

The detailed technology and preferred embodiments implemented for thesubject invention are described in the following paragraphs accompanyingthe appended drawings for people skilled in this field to wellappreciate the features of the claimed invention. It is understood thatthe features mentioned hereinbefore and those to be commented onhereinafter may be used not only in the specified combinations, but alsoin other combinations or in isolation, without departing from the scopeof the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic view of a workload dispatch device according to afirst embodiment of the present invention;

FIG. 2 shows an average performance index table and a normalizedperformance index table thereof according to the first embodiment of thepresent invention;

FIG. 3 is a weighting table and a benchmark correspondence table thereofaccording to the first embodiment of the present invention;

FIG. 4 is a weighting table and a benchmark correspondence table thereofaccording to a second embodiment of the present invention;

FIG. 5 is a flowchart diagram of a workload dispatch method according toa third embodiment of the present invention; and

FIG. 6 is a flowchart diagram of a workload dispatch method according toa fourth embodiment of the present invention.

DETAILED DESCRIPTION

In the following description, the present invention will be explainedwith reference to example embodiments thereof. However, these exampleembodiments are not intended to limit the present invention to anyspecific example, embodiment, environment, applications or particularimplementations described in these embodiments. Therefore, descriptionof these embodiments is only for purpose of illustration rather than tolimit the present invention. It should be appreciated that in thefollowing embodiments and the attached drawings, elements not directlyrelated to the present invention are omitted from depiction; anddimensional relationships among individual elements in the attacheddrawings are illustrated only for ease of understanding, but not tolimit the actual scale.

A first embodiment of the present invention is shown in FIG. 1, which isa schematic view of a workload dispatch device 1. The workload dispatchdevice 1 comprises a monitor 11, a processor 13 and a dispatcher 15. Theprocessor 13 is electrically connected to the monitor 11 and thedispatcher 15 respectively. In this embodiment, the processor 13 may bedisposed in the dispatcher 15 as shown in FIG. 1, but the presentinvention is not merely limited thereto. In other embodiments, themonitor 11, the processor 13 and the dispatcher 15 may also beimplemented by different pieces of hardware respectively or all beintegrated into a same piece of hardware.

As shown in FIG. 1, a server cluster 20 may comprise a plurality ofservers, e.g., a first server 22, a second server 24 and so on. For easeof description, the first server 22 and the second server 24 describedhereinafter may be viewed to represent the plurality of serverscomprised in the server cluster 20. However, this is not intended tolimit implementations of the present invention.

The monitor 11 can communicate with and transmit data from and to theserver cluster 20 in a wired or wireless way. Therefore, afterestablishing connections with the first server 22 and the second server24, the monitor 11 can further monitor operating conditions of the firstserver 22 and the second server 24. Through the aforesaid operations ofthe monitor 11, the processor 13 can continuously obtain the currentoperating conditions of the first server 22 and the second server 24.

Then, the processor 13 can create an average performance index table fora plurality of algorithms according to the current operating conditionsof the first server 22 and the second server 24. The algorithms may beselected from but not limited to: the Round-Robin (RR) algorithm, theRandom (RND) algorithm, the Least Energy First (LEF) algorithm, theLeast Pending First (LPF) algorithm, the Least Energy-to-UtilizationFirst (LEUF) algorithm, the Least Time-to-Task First (LTTF) algorithm,the Least Pending-Task-to-Task First (LPFFT) algorithm and so on.

Dispatching of an electric workload will be taken as an examplehereinafter, although this is not intended to limit implementations ofthe present invention. Referring to a table T21 of FIG. 2, animplementation of an average performance index table is depictedtherein. In the table T21, the first column represents optionalalgorithm categories. The second to the seventh columns representaverage parameters corresponding to the optional algorithms, which areAverage Power Consumption (in units of Watt (W)), Average Utilization(in units of %), Average Delay Time (in units of seconds (s)), AveragePending Task Amount, Average Completed Task Amount, and Average Energy(in units of kWh) in sequence. It shall be appreciated that, the averageperformance index table may also comprise other columns to describeother average parameters, but is not merely limited to what describedherein.

The values recorded in the columns of the average performance indextable are all obtained by the processor 13 according to operatingconditions of the servers in the server cluster 20 monitored by themonitor 11. The updating period of the average performance index tablemay be set according to the user's requirements, the operatingconditions of the server cluster 20, the settings and operation modes ofthe processor 13 and the monitor 11 per se, or the like factors. As anexample, the average performance index table may be updated once everyother hour, or once every other 24 hours.

The values recorded in the columns of the table T21 of FIG. 2 are onlyprovided for purpose of illustration, but are not intended to limitimplementations of the present invention. Further speaking, once theaverage performance index table is created, the processor 13 can knowthe average parameter values that will result when the individualalgorithms are chosen to dispatch the workload to the servers in theserver cluster 20 respectively.

For example, when the LEF algorithm is chosen to dispatch the workloadto the servers in the server cluster 20, the average power consumption,the average utilization, the average delay time, the average pendingtask amount, the average completed task amount and the average energyare 1785.13 W, 15.77%, 4.24 s, 636.27, 2177.12 and 0.45 kWhrespectively. Correspondence relationships between other optionalalgorithms and the average parameters can be appreciated by those ofordinary skill in the art from the above descriptions, so no furtherdescription will be made thereon herein.

After the average parameter values listed in the table T21 are obtained,the processor 13 normalizes the average parameter values listed in thetable T21 through use of a normalization distribution method to create anormalized performance index table. The normalized performance indextable may comprise a plurality of reference columns, each of which has aplurality of reference parameters corresponding to the optionalalgorithms.

For dispatching of the electric load, the load value, the delay valueand the task value are common reference parameters. Therefore, the loadvalue, the delay value and the task value may be used by the processor13 as the basis for normalization of the average parameter values listedin the table T21 so as to create the normalized performance index tableshown as the table T22 in FIG. 2.

Referring to the table T22 of FIG. 2, an implementation of thenormalized performance index table is depicted therein. In the tableT22, the first column represents optional algorithm categories. Thesecond to the fourth columns represent reference parameters of theoptional algorithm categories, which are Load Value, Delay Value andTask Value in sequence. It shall be appreciated that, the normalizedperformance index table may also comprise other columns to describeother average parameters, but is not merely limited to what describedherein.

How to normalize the average performance index table shown in FIG. 2 asthe table T21 into the normalized performance index table shown in FIG.2 as the table T22 is well known to those of ordinary skill in the art,so this will not be further described herein. Furthermore, taking theload value, the delay value and the task value as the basis fornormalization is only for ease of description, but is not intended tolimit implementations of the present invention.

The values recorded in the columns of the table T22 of FIG. 2 are onlyprovided for purpose of illustration, but are not intended to limitimplementations of the present invention. Further speaking, once thenormalized performance index table is established, the processor 13 canknow the reference values of the load, the delay and the task that willbe taken when the individual algorithms are chosen to dispatch theworkload to the servers in the server cluster 20 respectively.

For example, when the LEF algorithm is chosen to dispatch the workloadto the servers in the server cluster 20, the load value, the delay valueand the task value are 98.38, 2.8 and 3.54 respectively. In thisembodiment, a greater reference value represents a higher priority levelin terms of this reference index. For example, as compared to the otheroptional algorithms, the LEF algorithm has a very high priority level interms of the load value index (which means that the power consumption islow) but has a very low priority level in terms of both the delay valueindex (which means that the processing time is long) and the task valueindex (which means that the task processing amount is small).Correspondence relationships between other optional algorithms and theaverage parameters can be appreciated by those of ordinary skill in theart from the above descriptions, so no further description will be madethereon herein.

In other embodiments, the workload dispatch device 1 further comprises astorage (not shown). The storage is electrically connected to theprocessor 13 and is configured to temporarily or persistently store theaverage performance index table shown in the table T21 and thenormalized performance index table shown in the table T22 of FIG. 2.

After the normalized performance index table shown in the table T22 ofFIG. 2 has been created, the processor 13 may further create a weightingtable corresponding to the normalized performance index table. Asdescribed above, because the normalized performance index tablecomprises a load column, a delay column and a task column, the weightingtable comprises a load weight column, a delay weight column and a taskweight column correspondingly. It shall be appreciated that, when thenormalized performance index table comprises different referenceparameter columns, the weighting table will have different weightcolumns correspondingly.

The processor 13 can calculate a benchmark for each of the optionalalgorithms according to the normalized performance index table shown inthe table T22 of FIG. 2 and the weighting table, and choose a candidatealgorithm from the optional algorithms according to the benchmarks. Thecandidate algorithm is just an algorithm that is currently the mostappropriate for dispatching the workload.

In this embodiment, the processor 13 can calculate a benchmarkcorresponding to each of the algorithms according to the followingformula:

NPI _(W)=NPI _(L)×W _(L)+NPI _(D)×W _(D)+NPI _(T)×W _(T)  (1)

where NPI_(W) is the benchmark corresponding to each of the optionalalgorithms; NPI_(L), NPI_(D) and NPI_(T) are reference parameterscorresponding to each of the algorithms respectively (i.e., the loadvalue, the delay value and the task value); and W_(L), W_(D) and W_(T)are the load weight, the delay weight and the task weight correspondingto NPI_(L), NPI_(D) and NPI_(T) respectively. In other embodiments, theprocessor 13 may also calculate a benchmark corresponding to each of thealgorithms according to other formulae without departing from thespirits of the present invention.

According to the above Formula (1), the processor 13 can calculate abenchmark for each of the optional algorithms. In other words, thebenchmark for each of the optional algorithms is calculated as a sum ofa product of the load value and the load weight, a product of the delayvalue and the delay weight, and a product of the task value and the taskweight for each of the algorithms.

Hereinafter, a table T31 and a table T32 of FIG. 3 will be taken as anexample for further description. The table T31 of FIG. 3 is a weightingtable corresponding to the table T22 of FIG. 2, and the table T32 is abenchmark correspondence table corresponding to the table T31 of FIG. 3.

The table T31 is a weighting table, and the weight values (i.e., theload weight, the delay weight and the task weight) of individual columnsin this weighting table may be adjusted depending on the user'srequirements. For purpose of description, this embodiment adopts twogroups of different weights, i.e., a weight group A and a weight groupB. For the weight group A, the load weight, the delay weight and thetask weight are set to be 1, 1 and 1 respectively; and for the weightgroup B, the load weight, the delay weight and the task weight are setto be 10, 1 and 1 respectively. It shall be appreciated that, weightvalues of the weight groups A and B are only provided for ease ofdescription, but are not intended to limit implementations of thepresent invention.

As shown in the table T31 and the table T32 of FIG. 3, the benchmarksfor each of the optional algorithms are listed in the Benchmark A columnof the table T32 when the weight group A is adopted, and are listed inthe Benchmark B column of the table T32 when the weight group B isadopted. In this embodiment, a higher benchmark value represents ahigher priority level of the corresponding algorithm; that is, thecorresponding algorithm is more suitable for use as the candidatealgorithm for subsequent workload dispatching.

If the weight group A is adopted, then the LPFFT algorithm can have thehighest benchmark value (i.e., 218.89) as compared to other optionalalgorithms. In other words, the LPFFT algorithm is now the optimalchoice as a candidate algorithm for subsequent workload dispatching.Similarly, when the weight group A is adopted, the LEF algorithm canhave the highest benchmark value (i.e., 990.14) as compared to otheroptional algorithms. In other words, the LEF algorithm is now theoptimal choice as a candidate algorithm for subsequent workloaddispatching.

After the processor 13 has chosen the candidate algorithm according todifferent weighting schemes, the dispatcher 15 dispatches a workloadrequested by a client C to a plurality of servers (including the firstserver 22 and the second server 24) in the server cluster 20 accordingto the candidate algorithm. It shall be appreciated that, the workloadmay comprise a plurality of tasks or only a single task, both of whichare covered in the scope of the present invention.

A second embodiment of the present invention is also a workload dispatchdevice. Substantially, the workload dispatch device of this embodimentmay be considered to be the same as the workload dispatch device 1 ofthe first embodiment and can execute all the operations of the workloaddispatch device 1. Therefore, the following description will focus onlyon differences therebetween. For similarities with the first embodiment,reference may be made to descriptions of the first embodiment and therelated drawings; and unless otherwise stated, components described inthis embodiment may be viewed as corresponding components described inthe first embodiment.

In this embodiment, also dispatching of an electric workload will betaken as an example for further description. The workload dispatchdevice of this embodiment may comprise a monitor, a processor and adispatcher. The processor is electrically connected to the monitor andthe dispatcher respectively. This embodiment differs from the firstembodiment in that, the processor described in this embodiment can alsocreate the weighting table shown as a table T31 in FIG. 3 according to aDemand Response program. More specifically, the processor described inthis embodiment can adjust weight values shown in the table T31according to the Demand Response program as so to adaptively satisfydifferent workload dispatch goals.

For ease of description, it is supposed that the Demand Response programonly comprises a Critical Peak Pricing (CPP) program and a Time-of-UsePricing (TOU Pricing) program, and the TOU pricing program furthercomprises a peak-hour pricing program and an off-peak pricing program.It shall be appreciated that, the Demand Response program may furthercomprises other pricing items or other pricing items may be adopted asthe Demand Response program in other embodiments.

Now, a table T41 and a table T42 shown in FIG. 4 will be taken as anexample for further description. The table T41 of FIG. 4 is a weightingtable corresponding to the table T22 of FIG. 2, and the table T42 is abenchmark correspondence table corresponding to the table T41 of FIG. 4.

As shown in the table T41 of FIG. 4, different weight values may be setfor different Demand Response programs. Specifically, the load weight,the delay weight and the task weight corresponding to the CPP programare set to be 10, 1 and 1 respectively; the load weight, the delayweight and the task weight corresponding to the peak-hour pricingprogram are set to be 5, 1 and 1 respectively; and the load weight, thedelay weight and the task weight corresponding to the off-peak pricingprogram are set to be 2.5, 1 and 1 respectively.

The workload dispatch goal may vary with different Demand Responseprograms. For example, the workload dispatch goal is to choose analgorithm that can save the most energy when the Demand Response programis the CPP program. Correspondingly, for the CPP program, the loadweight is set to be 10 and both the delay weight and the task weight areset to be 1 to satisfy the dispatch goal of saving energy. Similarly,for the peak-hour pricing program and the off-peak pricing program, theworkload dispatch goals may vary but the processor of this embodimentcan still adaptively adjust the weight values so that the dispatcher 15can adaptively dispatch the workload to the servers in the servercluster 20.

As shown in the Table T42 of FIG. 4, the LEF algorithm has the greatestbenchmark when the Demand Response program is the CPP program. In otherwords, the LEF algorithm has the highest priority level as compared toother optional algorithms, and is the most appropriate for use as acandidate algorithm in subsequent workload dispatching.

When the Demand Response program is the peak-hour pricing program, theLEF algorithm still has the greatest benchmark. In other words, the LEFalgorithm has the highest priority level as compared to other optionalalgorithms, and is the most appropriate for use as a candidate algorithmin subsequent workload dispatching. However, when the Demand Responseprogram is the off-peak pricing program, the LPFFT algorithm has thegreatest benchmark. In other words, the LPFFT algorithm has the highestpriority level as compared to other optional algorithms, and is the mostappropriate for use as a candidate algorithm in subsequent workloaddispatching.

Accordingly, when the CPP program or the peak-hour pricing program isadopted, the dispatcher of this embodiment will dispatch the workloadrequested by the client C to a plurality of servers (including the firstserver 22 or the second server 24) of the server cluster 20 according tothe LEF algorithm. Furthermore, when the off-peak pricing program isadopted, the dispatcher of this embodiment will dispatch the workloadrequested by the client C to a plurality of servers (including the firstserver 22 or the second server 24) of the server cluster 20 according tothe LPFFT algorithm.

In other embodiments, the processor of this embodiment may also set aQuality of Service (QoS) threshold depending on the user's requirements.For example, the QoS threshold may be set to be a lower limit (e.g., 20)of a sum of the delay value and the task value shown in the table T22 ofFIG. 2. Then when the Demand Response program is the CPP program or thepeak-hour pricing program, the original candidate algorithm should havebeen the LEF algorithm. However, because the sum of the delay value(i.e., 2.8) and the task value (i.e., 3.54) for the LEF algorithm isonly 6.34 (i.e., 2.8+3.54) and fails to reach the QoS threshold, thefollowing processing will be performed by the processor of thisembodiment.

Specifically, the processor 13 of this embodiment will re-adjust theweighting proportions in the weighting table, for example, decrease theload weight proportion and increase the delay weight proportion and thetask weight proportion to increase the delay value and the task value ofthe LEF algorithm. Of course, the load value of the LEF algorithm mightdecrease in this case. Through continuous iterative operations, theprocessor of this embodiment can choose from the optional algorithms acandidate algorithm that satisfies the QoS threshold. Then, thedispatcher of this embodiment dispatches a workload requested by aclient C to a plurality of servers (including the first server 22 or thesecond server 24) in the server cluster 20 according to the candidatealgorithm that satisfies the QoS threshold. It shall be appreciatedthat, the aforesaid definition of the QoS threshold and the settingvalue thereof are only provided as an example, but are not intended tolimit implementations of the present invention.

A third embodiment of the present invention is shown in FIG. 5, whichdepicts a workload dispatch method for a workload dispatch device. Theworkload dispatch device comprises a monitor, a processor and adispatcher. The processor is electrically connected to the monitor andthe dispatcher. Substantially, the workload dispatch device described inthis embodiment may be viewed as the workload dispatch device 1 of thefirst embodiment.

As shown in FIG. 5, in the workload dispatch method, step S500 isfirstly executed to enable the monitor to monitor operating conditionsof a plurality of servers. Then, step S510 is executed to enable theprocessor to create an average performance index table for a pluralityof algorithms according to the operating conditions of the servers. Theaverage performance index table comprises a plurality of averageparameters of the servers corresponding to each of the algorithms. Theaverage parameters may include but are not limited to: one or acombination of Average Power Consumption, Average Utilization, AverageDelay Time, Average Pending Task Amount, Average Completed Task Amountand Average Energy.

Next, step S520 is executed to enable the processor to normalize theaverage performance index table. The normalized performance index tablecomprises a plurality of reference values of the servers correspondingto each of the algorithms. Subsequently, step S530 is executed to enablethe processor to calculate a benchmark for each of the algorithmsaccording to the normalized performance index table and a correspondingweighting table. The weighting table comprises a plurality of weightscorresponding to the reference values.

Thereafter, step S540 is executed to enable the processor to choose acandidate algorithm from the algorithms according to the benchmarks.Finally, step S550 is executed to enable the dispatcher to dispatch aworkload to the servers according to the candidate algorithm.

In other embodiments, the aforesaid reference values may include a loadvalue, a delay value and a task value; and the weighting table maycomprise a load weight, a delay weight and a task weight correspondingto the load value, the delay value and the task value respectively.Accordingly, the benchmark for each of the algorithms may be a sum of aproduct of the corresponding load value and the load weight, a productof the corresponding delay value and the delay weight and a product ofthe corresponding task value and the task weight of the servers.

In addition to the aforesaid steps, the workload dispatch method of thisembodiment can also execute all the operations of the workload dispatchdevice 1 described in the first embodiment and have all thecorresponding functions. How the workload dispatch method of thisembodiment executes these operations and has these functions will bereadily appreciated by those of ordinary skill in the art based on theexplanation of the first embodiment, and thus will not be furtherdescribed herein.

A fourth embodiment of the present invention is shown in FIG. 6, whichdepicts a workload dispatch method for a workload dispatch device. Theworkload dispatch device comprises a monitor, a processor and adispatcher. The processor is electrically connected to the monitor andthe dispatcher. Substantially, the workload dispatch device of thisembodiment may be viewed as the workload dispatch device 1 of the secondembodiment. Steps S500, S510, S540 and S550 of the workload dispatchmethod of this embodiment are identical to those of the thirdembodiment, so the following description will focus only on differencesof the two embodiments. For similarities between this embodiment and thethird embodiment, reference may be made to descriptions of the thirdembodiment.

In the workload dispatch method of this embodiment, step S525 may beselectively executed before the step S530 to enable the processor tocreate a weighting table according to a Demand Response program. Theweighting table corresponds to the normalized performance index table.Then, step S530 is executed to enable the processor to calculate abenchmark for each of the algorithms according to the normalizedperformance index table and the weighting table created in the stepS525. The Demand Response program described in this embodiment mayinclude but is not limited to one of a CCP program and a TOU pricingprogram, and the TOU pricing program further comprises a peak-hourpricing program and an off-peak pricing program.

On the other hand, the workload dispatch method of this embodiment mayfurther execute step S545 between the step S540 and the step S550 toenable the processor to determine whether the candidate algorithmsatisfies a QoS threshold. If the determination result is “No”, then themethod returns back to the step S525 to enable the processor tore-create a weighting table according to the Demand Response program.Otherwise, if the determination result is “Yes”, then the step S550 isexecuted.

In other embodiments, the aforesaid QoS threshold may be set to be alower limit of a sum of the delay value and the task value. In thiscase, the processor determines whether the sum of the delay value andthe task value corresponding to the candidate algorithm is smaller thanthe QoS threshold in the step S545. If the determination result is “No”,then the processor re-adjusts the weighting table and the method returnsback to the step S530. Otherwise, if the determination result is “yes”,then the step S550 is executed.

In addition to the aforesaid steps, the workload dispatch method of thisembodiment can also execute all the operations of the workload dispatchdevice described in the second embodiment and have all the correspondingfunctions. How the workload dispatch method of this embodiment executesthese operations and has these functions will be readily appreciated bythose of ordinary skill in the art based on the explanation of thesecond embodiment, and thus will not be further described herein.

According to the above descriptions, the present invention provides aworkload dispatch device and a workload dispatch method. Furtherspeaking, operating conditions of the servers in the server cluster aremonitored to obtain the operating conditions of the servers, and then anaverage performance index table for a plurality of algorithms is createdaccording to the operating conditions of the servers. Then, the averageperformance index table is normalized, and a weighting tablecorresponding to the average performance index table is created.Finally, the normalized performance index table and the weighting tableare used as an algorithm choosing mechanism to choose from the pluralityof algorithms a candidate algorithm that is currently the mostappropriate for dispatching the workload.

By monitoring the operating conditions of the servers, the presentinvention can choose different algorithms according to real-time changesin the operating conditions of the servers and change the way ofdispatching the workload to the servers correspondingly. Thereby,influences of unexpected variables on the servers can be effectivelymitigated. Moreover, the present invention can adaptively adjust thealgorithm choosing mechanism through use of the weighting table, so themost appropriate algorithm can be adaptively chosen for workloaddispatching when the workload dispatching goal changes. In a word, thepresent invention provides a workload dispatch device and a workloaddispatch method thereof that can adaptively dispatch the workload to theplurality of servers in the server cluster.

The above disclosure is related to the detailed technical contents andinventive features thereof. People skilled in this field may proceedwith a variety of modifications and replacements based on thedisclosures and suggestions of the invention as described withoutdeparting from the characteristics thereof. Nevertheless, although suchmodifications and replacements are not fully disclosed in the abovedescriptions, they have substantially been covered in the followingclaims as appended.

What is claimed is:
 1. A workload dispatch device, comprising: amonitor, being configured to monitor operating conditions of a pluralityof servers; a processor electrically connected to the monitor, beingconfigured to execute the following operations: creating an averageperformance index table for a plurality of algorithms according to theoperating conditions of the servers; normalizing the average performanceindex table; calculating a benchmark for each of the algorithmsaccording to the normalized performance index table and a correspondingweighting table; and choosing a candidate algorithm from the algorithmsaccording to the benchmarks; and a dispatcher electrically connected tothe processor, being configured to dispatch a workload to the serversaccording to the candidate algorithm.
 2. The workload dispatch device asclaimed in claim 1, wherein the processor creates the weighting tableaccording to a demand response program.
 3. The workload dispatch deviceas claimed in claim 2, wherein the average performance index tablecomprises a plurality of average parameters of the servers correspondingto each of the algorithms.
 4. The workload dispatch device as claimed inclaim 3, wherein the normalized performance index table comprises aplurality of reference values of the servers corresponding to each ofthe algorithms, and the weighting table comprises a plurality of weightscorresponding to the reference values.
 5. The workload dispatch deviceas claimed in claim 4, wherein the benchmark for each of the algorithmsis a sum of products of each of the reference values corresponding tothe algorithm in the normalized performance index value multiplied witha corresponding one of the weights in the weighting table.
 6. A workloaddispatch method, comprising the following steps of: (a) enabling amonitor to monitor operating conditions of a plurality of servers; (b)enabling a processor to create an average performance index table for aplurality of algorithms according to the operating conditions of theservers, wherein the processor is electrically connected to the monitor;(c) enabling the processor to normalize the average performance indextable; (d) enabling the processor to calculate a benchmark for each ofthe algorithms according to the normalized performance index table and acorresponding weighting table; (e) enabling the processor to choose acandidate algorithm from the algorithms according to the benchmarks; and(f) enabling a dispatcher to dispatch a workload to the serversaccording to the candidate algorithm, wherein the dispatcher iselectrically connected to the processor.
 7. The workload dispatch methodas claimed in claim 6, further comprising the following step before thestep (d): (d0) enabling the processor to create the weighting tableaccording to a demand response program.
 8. The workload dispatch methodas claimed in claim 7, wherein the average performance index tablecomprises a plurality of average parameters of the servers correspondingto each of the algorithms.
 9. The workload dispatch method as claimed inclaim 8, wherein the normalized performance index table comprises aplurality of reference values of the servers corresponding to each ofthe algorithms, and the weighting table comprises a plurality of weightscorresponding to the reference values.
 10. The workload dispatch methodas claimed in claim 9, wherein the benchmark for each of the algorithmsis a sum of products of each of the reference values corresponding tothe algorithm in the normalized performance index value multiplied witha corresponding one of the weights in the weighting table.